package com.generic;

/**
 * @author LingLed
 * @version 1.0
 */
public class GenericDetail {
    public static void main(String[] args) {
        //泛型只能是引用类型
        //不能是基本数据类型

        //指定具体类型后
        //编译器会自动进行类型检查
        //可以传入该类型或者该类型的子类型(向上转型)

        //泛型可以简写,推荐简写
        //List<Employee> arrayList = new ArrayList<>();
        //由编译类型的泛型决定作用类型的泛型

        //泛型不写时默认为Object
        Person person = new Person("123");
        //String o = person.get();
        //此处编译器会报错，因为泛型不写默认为Object
        //无法直接调用get方法附给String类型
        //需要进行强制类型转换


    }
    static class Person<E>{
        E e;

        public Person(E e) {
            this.e = e;
        }
        E get(){
            return e;
        }
    }
}
